Windows Presentation Foundation

Materiály

Proto, aby objekt byl viditelný je zapotřebí na jeho povrch umístit materiál. Ten se nanáší na jednotlivé trojúhelníky. Materiál se aplikuje za pomoci atributu Material nebo BackMaterial u elementu GeometryModel3D. Všechny materiály ve WPF mají atribut Brush (štětec s barvou).

DiffuseMaterial

Vytvoří materiál s matným povrchem. Štětce použitelné s DiffuseMaterial jsou například: SolidColorBrush nebo ImageBrush. Pro použití ImageBrush je potřeba nastavit TextureCoordinates.

SolidColorBrush
<DiffuseMaterial Brush="Green"/>
Brush – aplikuje štětec SolidColorBrush
ImageBrush
<GeometryModel3D>
      <GeometryModel3D.Material>            
         <DiffuseMaterial>
            <DiffuseMaterial.Brush>
                <ImageBrush ImageSource="sach-texture.png"/>
            </DiffuseMaterial.Brush>
         </DiffuseMaterial
      </GeometryModel3D.Material>

       <GeometryModel3D.Geometry>
             <MeshGeometry3D Positions="0,0,0 0,1,0 0,0,1 0,1,1"
                             TextureCoordinates="1,1 1,0 0,1 0,0"
                             TriangleIndices="0 1 2 2 1 3"/>

       </GeometryModel3D.Geometry>
</GeometryModel3D>
TextureCoordinates – slouží k mapování textury na trojúhelníky
Levý horní roh textury (0,0) je umístěn v levém horním rohu [0,1,1] čtverce.
Levý dolní roh textury (0,1) je umístěn v levém dolním rohu [0,0,1] čtverce.
Pravý horní roh textury (1,0) je umístěn v pravém horním rohu [0,1,0] čtverce.
Pravý dolní roh textury (1,1) je umístěn v pravém dolním rohu [0,1,1] čtverce.
Na Obrázku 13 je zobrazen princip mapování textury na trojúhelníky (čtverec).
Princip mapování textur na trojúhelníky
Obrázek 13 Princip mapování textur na trojúhelníky [zdroj: vlastní]
Ukázkové řešení: 3D Grafika/DiffuseMaterial

SpecularMaterial

Vytvoří materiál s lesklým povrchem. Často se používá s materiálem DiffuseMaterial. Samotný materiál vytvoří průhledný materiál s odleskem. Atribut Brush nastavuje barvu odrazu. Pro přidání materiálu do skupiny materiálů slouží MaterialGroup. Pomocí atributu SpecularPower se nastavuje odrazivost materiálu. Na Obrázku 14 je ukázka lesklého materiálu.

Ukázka lesklého povrchu vytvořeného pomocí SpecularMaterial
Obrázek 14 Ukázka lesklého povrchu vytvořeného pomocí SpecularMaterial [zdroj: vlastní]
ImageBrush
<MaterialGroup>
       <DiffuseMaterial Brush="Green"/>
       <SpecularMaterial Brush="White" SpecularPower="40"/>
</MaterialGroup>
MaterialGroup – dovoluje pro objekt použít více materiálů
SpecularMaterial – vytvoří materiál s lesklým povrchem
SpecularPower – nastavuje sílu odrazivosti
Ukázkové řešení: 3D Grafika/SpecularMaterial